package copyengine.ui.component.scrollablePanel.element.list.displayContainerSharePool
{
    import copyengine.ui.infoTree.buildTree.InfoTreeBuildResult;
    import copyengine.utils.ICEDispose;

    import flash.geom.Rectangle;

    /**
     * 用于缓存CListElement的显示对象,因为List组件每个Element均相同所以可以用一个对象池的
     * 结构缓存其显示对象以提高渲染性能
     */
    public interface ICEListElementDisplayContainerSharePool extends ICEDispose
    {
        /**
         * 返回显示对象的Bounds,因为每个ScrollableElement都需要实现getBounds函数
         * 由于List的Element只有显示的时候才持有显示对象 所以需要通过SharePool来得到
         * 显示对象的Bounds 从而计算自身的Bounds
         */
        function getContainerBounds():Rectangle;

        /**
         * 归还显示对象到池子
         */
        function returnITBuildResult(_buildResult:InfoTreeBuildResult):void;

        /**
         * 从池子中拿取对象
         */
        function getFreeITBuildResult():InfoTreeBuildResult;

    }
}
